//
// Copyright (C) [2024] Xingyun Integrated Circuit, Inc.
//
// GreenCode was a private technology asset of Xingyun Integrated Circuit， Inc （Confidential）
//  Author: Shawn.Tan
//  Date : 2025.10.28
//
//  History : Initial Version 2025.10.28
//
//
#ifndef Green_PyUtilityFunctions_H
#define Green_PyUtilityFunctions_H

#include "pybind11/pybind11.h"

#include "ThreadContext.h"
#include "UtilityFunctions.h"

namespace py = pybind11;

namespace Green {

  PYBIND11_MODULE(UtilityFunctions, mod) {
    mod
      .def("getAlignMask", &get_align_mask, py::call_guard<ThreadContext>())
      .def("getAlignedValue", &get_aligned_value, py::call_guard<ThreadContext>())
      .def("lowestBitSet", &lowest_bit_set, py::call_guard<ThreadContext>())
      .def("signExtend64", &sign_extend64, py::call_guard<ThreadContext>())
      ;
  }

}

#endif  // Green_PyUtilityFunctions_H
